package meituan;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 我们称一个长度为n的序列为正则序列，当且仅当该序列是一个由1~n组成的排列，即该序列由n个正整数组成，
 * 取值在[1,n]范围，且不存在重复的数，同时正则序列不要求排序有一天小团得到了一个长度为n的任意序列s，
 * 他需要在有限次操作内，将这个序列变成一个正则序列，每次操作他可以任选序列中的一个数字，并将该数字加一或者减一。
 * 请问他最少用多少次操作可以把这个序列变成正则序列？
 * <p>
 * 输入第一行仅包含一个正整数n，表示任意序列的长度。(1<=n<=20000)
 * 输入第二行包含n个整数，表示给出的序列，每个数的绝对值都小于10000。
 *
 * @Author Jun jie Yi
 * @Date 2022/3/16 22:17
 */
public class Problem2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < 1) {
                sum += 1 - arr[i];
                arr[i] = 1;
            }
            if (arr[i] > n) {
                sum += arr[i] - n;
                arr[i] = n;
            }
        }
        //进行排序操作，默认从小到大排序
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != i + 1) {
                sum += Math.abs(i + 1 - arr[i]);
            }
        }
        System.out.println(sum);
    }
}
